package eventos.aceptar;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JOptionPane;

import controlador.ControladorEditor;

import logica.AtributoRepetidoException;
import logica.SinNombreException;

import vista.objetos.AtributoCompuestoException;
import vista.ventanas.SubVentanaConPanelAtributos;
import vista.ventanas.VentanaAtributo;

public class EventoAceptarAtributoEditado  extends MouseAdapter {
	
	private VentanaAtributo ventana;
	private SubVentanaConPanelAtributos ventanaPadre;
	
	public EventoAceptarAtributoEditado(SubVentanaConPanelAtributos ventanaPadre, VentanaAtributo ventana)
	{
		super();
		this.ventana = ventana;
		this.ventanaPadre = ventanaPadre;
	}
	
	public void mouseClicked(MouseEvent e)
	{
		try
		{
			this.ventanaPadre.editarAtributo(this.ventana.getAtributo());
			this.ventana.setVisible(false);
			this.ventana = null;	
			
			ControladorEditor.getInstancia().sacarGraficableEditando();
		}
		catch (SinNombreException e1)
		{
			JOptionPane.showMessageDialog(this.ventana, e1.getMessage(), "Atributo sin nombre", JOptionPane.ERROR_MESSAGE);
			ControladorEditor.getInstancia().getGraficableEditando().cargarMemento();
		}
		catch (AtributoRepetidoException e7) 
		{
			JOptionPane.showMessageDialog(this.ventana, e7.getMessage(), "Atributo repetido", JOptionPane.ERROR_MESSAGE);
			ControladorEditor.getInstancia().getGraficableEditando().cargarMemento();
		}
		catch (NumberFormatException eNumeroIncorrecto) 
		{
			JOptionPane.showMessageDialog(this.ventana, eNumeroIncorrecto.getMessage(), "Error en la cardinalidad", JOptionPane.ERROR_MESSAGE);
			ControladorEditor.getInstancia().getGraficableEditando().cargarMemento();
//			throw eNumeroIncorrecto;
		}
		catch (AtributoCompuestoException atriCompu)
		{
			JOptionPane.showMessageDialog(this.ventana, atriCompu.getMessage(), "Error al editar el Atributo", JOptionPane.ERROR_MESSAGE);
			ControladorEditor.getInstancia().getGraficableEditando().cargarMemento();
		}	
	}
}
